#ifndef MODELS_LIST_H
#define MODELS_LIST_H
#include <QListWidget>
#include "povparser/povparser.h"

/** Allows the user to select one of the loaded models in the editor*/
class ModelsList : public QListWidget
{
    Q_OBJECT

    public:
        /** Constructor*/
        ModelsList(QWidget *parent = 0);
        /** Destructor */
        ~ModelsList();

    public slots:
        /** Slot that adds another element to the list 
            @param filename Name of the element added 
        */
        void addModelFile(QString filename);

        /** Removes the currently selected file */
        void removeCurrentFile();
        /** Moves the currently selected element up 
         \todo Implement this method*/
        void moveCurrentUp();

        /** Moves the currently selected element down
          \todo Implement this method */
        void moveCurrentDown();
        
        /** Emits the selectedModelChanged signal */
        void changeSelectedElem(int row);

    signals:
        /** Signal that indicates that the selected elem has changed 
            @param selected newly selected elem
         */
        void selectedModelChanged(int selected);
        /** Signal that indicates that one element has been removed from the 
          list
          @param selected Removed element ID */
        void fileRemoved(int selected);
};

#endif 

